1. Field
The following description relates to Open Computing Language.
2. Description of the Related Art
With the recent increase of use of performance accelerators in mobile computing, more attention has been given to programming models for supporting the relevant environment. Especially, Open Computing Language (OpenCL) supports various devices and architectures and allows the same program to be executed on these devices and architectures. However, to write a program to have performance portability, an additional and troublesome optimization process for an intended architecture may be required.
One way to overcome such problems may be a use of an OpenCL compiler for optimization (hereinafter, referred to as an “OpenCL optimization compiler”). However, the OpenCL optimization compiler does not support vector code generation. Therefore, in an architecture that utilizes vector unit, a user may need to manually change arrays and variables within kernel code into vector-type arrays and vector-type variables, respectively, and accordingly may need to change data layout handled by each work-item.
Further, kernel code written to directly use vector code may be optimized in accordance with characteristics of specific vector unit supported by a particular device, and thus it may be difficult to ensure the performance portability.